package LIST;


//LinkedList 特有的方法
//1. void add(int index, E element)          //在当前集合的索引index处插入元素element
//2. void addFirst(Object o)                 //将指定元素o插入当前集合的开头
//3. void addLast(Object o)                  //将指定元素o添加到当前集合的结尾
//4. Object getFirst()                       //返回当前集合的第一个元素
//5. Object getLast()                        //返回当前集合的最后一个元素
//6. Object removeFirst()                    //移除并返回当前集合的第一个元素
//7. Object removeLast()                     //移除并返回当前集合的最后一个元素
//8. boolean offer(Object o)                 //将指定元素o添加到当前集合的结尾
//9. boolean offerFirst(Object o)            //将指定元素o添加到当前集合的开头
//10. boolean offerLast(Object o)            //将指定元素o添加到当前集合的结尾
//11. Object peekFirst()                     //获取当前集合的第一个元素
//12. Object peekLast()                      //获取当前集合的最后一个元素
//13. Object pollFirst()                     //移除并返回当前集合的第一个元素
//14. Object pollLast()                      //移除并返回当前集合的最后一个元素
//15. void push(Object o)                    //将指定元素o添加到当前集合的开头

import java.util.LinkedList;

public class Linkedlist {
    public static void main(String[] args) {
        //对与 ArrayList 和 LinkedList 的区别
        //ArrayList在查询元素时候速度很快，但是在增删元素时候效率很低
        //LinkedList解决了这种问题
        //LinkedList底层是双向链表和双向队列
        LinkedList link = new LinkedList();
        link.add("10");
        link.add("9");
        link.add("8");
        link.add("7");
        link.add("6");
        link.add("5");
        System.out.println("集合中的元素为:" + link);
        //向集合指定位置插入数据
        link.add(2,"1");
        System.out.println("插入数据后的集合为:" + link);
        //头插，尾插，头删，尾删
        link.addFirst("a");
        link.addLast("b");
        System.out.println("头插和尾插后的集合为:" + link);
        link.removeLast();
        link.removeFirst();
        System.out.println("头删和尾删后的集合为:" + link);
    }
}
